PrestaShop 1.6 y 1.7 – error XML en el panel de administración (must_have_modules_list.xml, modules_native_addons.xml)

¿El gestor de módulos en PrestaShop arroja un error XML? A continuación, te explicamos por qué sucede y cómo solucionarlo eficazmente, sin necesidad de actualizar la tienda ni intervenir en la base de datos.

¿Qué son los archivos XML en el directorio config/xml/?
PrestaShop almacena localmente varios archivos XML que son responsables del funcionamiento de la sección Módulos > Gestor de módulos en el panel de administración. Se descargan periódicamente de una API externa PrestaShop Addons y guardados en el directorio:

config/xml/
Los más importantes son:

  • lista_modulos_obligatorios.xml – lista de módulos marcados como „imprescindibles” por PrestaShop
  • modules_native_addons.xml – lista modułów natywnych disponibles en Addons
  • default_country_modules_list.xml – módulos sugeridos para un país específico
  • lista_de_módulos_confiables.xml – lista modułów zaufanych weryfikowanych przez PrestaShop
Estos archivos no afectan al frontend de la tienda ni al procesamiento de pedidos. Solo se utilizan para mostrar información en la sección de módulos del panel de administración.

¿Cómo se ve un error XML y dónde aparece?
El error aparece con mayor frecuencia directamente en el panel de administración, en la pestaña Módulos lub po wejściu do Gestor de módulos. Los comunicados pueden tener el siguiente aspecto:

Error encontrado: Se esperaba una etiqueta de inicio, no se encontró '<' en el archivo must_have_modules_list.xml
Error encontrado: Se esperaba una etiqueta de inicio, no se encontró '<' en el archivo modules_native_addons.xml
Error encontrado: Se esperaba una etiqueta de inicio, no se encontró '<' en el archivo default_country_modules_list.xml
Nota
Estos errores aparecen en PrestaShop 1.7 y PrestaShop 8.x. En las versiones anteriores 1.6, el mecanismo funciona de manera similar, aunque la ubicación de algunos archivos puede variar.

¿De dónde surge este error?
PrestaShop envía peticiones HTTP a la API de Módulos de PrestaShop para obtener las listas actualizadas de módulos. Un endpoint de ejemplo se ve así:

https://api.addons.prestashop.com/?version=1.7.8.x&method=listing&action=must-have
La tienda espera una respuesta en formato XML. El problema surge cuando:
  • API Addons devuelve una respuesta en un formato diferente (por ejemplo, JSON o una página de error HTML)
  • la conexión a la API está bloqueada por un firewall o la configuración del servidor
  • el servidor de la tienda no tiene acceso a recursos externos (falta de tráfico HTTP/HTTPS saliente)
  • Los complementos de la API no están disponibles temporalmente o devuelven tiempo de espera agotado
  • La versión de PrestaShop es demasiado antigua y ya no es compatible con la API.
Analizador PHP simplexml_load_string() al intentar procesar una respuesta incorrecta, informa este error: Se esperaba una etiqueta de inicio.


¿El error afecta el funcionamiento de la tienda?
Éxito
El frontend de la tienda, el carrito de compras, los pedidos, los pagos y todos los procesos de compra funcionan normalmente. El error concierne únicamente al panel de administración, específicamente a la sección de gestión de módulos.
¿Qué puede dejar de funcionar en el panel:
  • lista rekomendowanych modułów
  • sección „imprescindibles” en el gestor de módulos
  • Marketplace Complementos accesible desde el admin
  • sugestie modułów dla kraju
  • Carga más lenta de la página Módulos (tiempo de espera al intentar conectarse a la API)

Paso 1 – comprobación del contenido de los archivos XML
Antes de realizar cualquier cambio, vale la pena comprobar qué hay actualmente en los archivos. Por SSH hacemos:

gato config/xml/must_have_modules_list.xml
Si el archivo está vacío, contiene HTML (por ejemplo, una página de error 503) o JSON en lugar de XML, esa es la fuente del problema.

Consejo
Para comprobar el contenido de un archivo, también puede utilizar el administrador de archivos en el panel de hosting (por ejemplo, Hestia CP, cPanel) o un cliente FTP; no se requiere acceso SSH.

Paso 2 - Intercambio de archivos por XML correcto
La solución más rápida es reemplazar el contenido de los archivos problemáticos por un XML mínimo y correcto. A través de SSH, ejecutamos:

echo '' > config/xml/must_have_modules_list.xml
echo '' > config/xml/modules_native_addons.xml
echo '' > config/xml/default_country_modules_list.xml
echo '' > config/xml/trusted_modules_list.xml
También puedes cargar archivos manualmente a través de FTP. El contenido de cada uno debería verse así:

Advertencia
El simple reemplazo de archivos solucionará el problema temporalmente. PrestaShop, en la próxima actualización de la página de módulos, intentará descargar los datos de la API nuevamente y podría sobrescribir los archivos con una respuesta errónea.

Paso 3: solución permanente mediante anulación de clase
Para bloquear permanentemente los intentos de descarga de XML de la API de Addons, crearemos un override de clase. Herramientas. Creamos un archivo:

override/classes/Tools.php
Sobre el siguiente contenido:

<?php
class Tools extends ToolsCore
{
    protected static $is_addons_up = false;
}
Propiedad $es_complementos_arriba = falso hace que PrestaShop no intente conectarse a la API de Addons, y por lo tanto, no descargará ni sobrescribirá archivos XML.

Después de crear el archivo override, borramos la caché. Para PrestaShop 1.7 / 8.x:

rm -rf var/cache/dev/*
rm -rf var/cache/prod/*
También puedes limpiar la caché desde el panel de administración: Avanzado > Rendimiento > Borrar caché.

Información
Tras aplicar el override, la sección de módulos sigue funcionando plenamente: se pueden instalar, desinstalar y actualizar módulos desde un archivo ZIP. Solo se desactiva la integración con el marketplace Addons en el panel de administración.

Alternativa: bloqueo de escritura en archivos
Si no queremos usar la anulación, podemos configurar los archivos XML con permisos de solo lectura. PrestaShop no podrá sobrescribirlos:

chmod 444 config/xml/must_have_modules_list.xml
chmod 444 config/xml/modules_native_addons.xml
chmod 444 config/xml/default_country_modules_list.xml
chmod 444 config/xml/trusted_modules_list.xml
Nota
El método con chmod es más simple, pero no elimina los intentos de conexión a la API; PrestaShop aún los realizará, lo que podría ralentizar la carga de la página de los módulos. Sobrescribir la clase Tools es una solución técnicamente más limpia.

¿Qué no perdemos al desactivar la API de complementos?
Vale la pena saber que en un entorno de producción, la mayoría de estas funciones no se utilizan en el día a día de todos modos:

FunciónDespués de desactivar la API
Front-end de la tiendaFunciona sin cambios.
Pedidos y carritoFunciona sin cambios.
Instalación de módulos desde ZIPFunciona sin cambios.
Actualizaciones de módulosFunciona sin cambios.
Complementos del Marketplace en el administradorNo disponible
Módulos „imprescindibles” recomendados”No disponible
Sugerencias de módulos para el paísNo disponible

¿Cuándo puede regresar el error?
Si solo aplicamos el reemplazo de archivos sin anulación (override) o chmod, el error puede regresar después de:

  • refrescamento de la página del Administrador de módulos
  • iniciar cron PrestaShop
  • Actualización de PrestaShop
  • limpieza de la caché
Por lo tanto, recomendamos combinar ambos pasos: la sustitución de archivos i anular la clase o el bloqueo de escritura.

Resumen
El error XML en el panel de PrestaShop es un problema de comunicación entre la versión antigua de la tienda y la API de Addons. No es una falla del servidor, un problema de la base de datos ni la presencia de malware. La tienda funciona normalmente. La solución es rápida y no requiere una actualización de PrestaShop.

Pasos recomendados:

  1. Verificar el contenido de los archivos en config/xml/
  2. Reemplazo de archivos por XML mínimo válido
  3. Agregar anulación de clase Herramientas z $es_complementos_arriba = falso
  4. Limpiar la caché de PrestaShop
Si necesitan ayuda para implementar los cambios mencionados o desean aprovechar para realizar una auditoría técnica de la tienda, estaremos encantados de ayudar.

Póngase en contacto con nosotros

Deje su comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Productos vistos recientemente

PrestaShop Google Merchant Feed XML 1.0.0

(1)
52,08  IVA incluido

PrestaShop Google Tag Manager (GTM, GA4, ADS)

(2)
52,08  IVA incluido

Sistema de reservas para clientes de WordPress 1.0.0

(3)
52,08  IVA incluido

[GRATIS] PrestaShop PayNow 1.7.13

(0)
0,00  IVA incluido

Iniciar sesión

Cesta de la compra

Cerrar

Su cesta está vacía.

Empezar a comprar

Barra lateral